"""异常捕捉"""""

'''异常'''
# 异常就是程序运行的时候，发出的错误信息，如果程序没有正确处理它，那么就会抛出异常，程序停止
# 异常种类：ValueError，TypeError，语法错误或者是逻辑错误

'''异常处理'''

# try:
#     被检测的程序
# except Exception:
#     处理异常的语句
# finally:
#     无论是否发生错误，都会执行的语句


# try:
#     # a
#     a = 1
#     print(a)
# except Exception as e:
#     print(e)
# finally:
#     print('程序结束')

'''自定义报错'''
try:
    # a
    print(a)
except Exception as e:
    raise NameError(f'你的代码有误！') from None # 隐藏原始错误，并自定义错误信息
finally:
    print('程序结束')

    # 6.编写自定义函数：剪刀石头布
    #    游戏开始，初始状态下用户和电脑都有 100 分，赢一局+10 分，输一局-10 分。
    #    当用户为 0 分时，游戏结束，提示游戏结束，比赛输了
    #    当用户为 200 分时，游戏结束，提示游戏结束，赢得比赛、每轮比赛都输出当前的分数
    #    1 代表剪刀 2 代表石头 3 代表布
    import random


    def robot_user_game():
        try:
            user, robot = 100, 100  # 初始化人，机分数
            while 0 < user < 200:
                print(f'当前用户分数是：{user}，机器人分数是：{robot}')
                robot_choice = random.randint(1, 3)  # 每次机器人的输出
                user_choice = int(input('请输入你的选择：1代表剪刀；2代表石头；3代表布'))
                if robot_choice == user_choice:
                    print('平局，游戏继续')
                    continue
                elif (user_choice == 1 and robot_choice == 3) or (user_choice == 2 and robot_choice == 1) or (
                        user_choice == 3 and robot_choice == 2):
                    user += 10
                    robot -= 10
                    print('本轮用户赢了！，加10分')
                else:
                    user -= 10
                    robot += 10
                    print('本轮用户输了！，减10分')
            if not user:
                return '游戏结束，你输了！'
            return '游戏结束，你赢了！'
        except Exception as e:
            print(f'您在输入过程中，输入有误，请输入你的选择：1代表剪刀；2代表石头；3代表布，{e}')


    robot_user_game()